home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
filutil
/
mdf130.zip
/
MDF_ITA.DOC
< prev
next >
Wrap
Text File
|
1995-01-12
|
14KB
|
407 lines
MDIFF - MPATCH
Release 1.3
Un software semplice ma completo per produrre e applicare patch a
programmi e file di dati.
Manuale in lingua italiana.
(C) 1994/95 Maurizio Giunti - Tutti i diritti riservati
0.SOMMARIO
0.SOMMARIO 2
1.PERCHE' 3
2.A COSA SERVE 3
3.DOS E OS/2 3
4.LIMITI 3
5.MDIFF - MDIFF2 3
6.MPATCH - MPATCH2 4
7.ALCUNI CONSIGLI 4
8.DIRITTI 5
9.GARANZIE 5
10.LIBRERIE PER APPLICARE PATCH 5
11.COME REGISTRARSI 6
12.RINGRAZIAMENTI 6
2
1.PERCHE'
Qualche tempo fa dovevo rilasciare una versione aggiornata di un mio
programma: il pacchetto compresso "pesava" piu' di 200 Kbyte, e sarebbe
stato sicuramente piu' conveniente per tutti aggiornare il vecchio
eseguibile tramite una patch. Mi misi in caccia di un software che mi
permettesse di creare e distribuire patch dei miei programmi per Dos e
OS/2: per Dos ne ho trovati alcuni (ma non mi hanno soddisfatto per vari
motivi), per OS/2 neanche uno! Ho quindi deciso di farmene uno
e....eccolo qui ! 8-)
2.A COSA SERVE
MDIFF crea un file binario di differenza tra due file. Con MPATCH e il
vecchio file si puo' ricreare il nuovo file partendo dal file di
differenza. Cosa c'e' di buono in tutto cio'? Semplice: supponendo che il
file di differenza sia piu' breve del nuovo file, e' piu' conveniente
distribuire solo quello invece di tutto il file, soprattutto se la
distribuzione avviene via modem.
3.DOS E OS/2
Nel pacchetto di distribuzione troverete quattro files eseguibili, due
per Dos e due per OS/2 32bit. Non c'e' alcuna differenza nella funzione
e nell'uso dei programmi sui due sistemi operativi. I files *.MDF
prodotti con MDIFF per Dos possono essere utilizzati con MPATCH per OS/2
e viceversa.
4.LIMITI
MDIFF non puo' trattare files piu' ampi di 16 Megabyte. Questo e' l'unico
limite fisico di MDIFF.
5.MDIFF - MDIFF2
Il programma MDIFF si occupa di comparare due files e di immagazzinare le
differenze tra di essi in un terzo file che, generalmente, e' molto piu'
compatto. Vediamo come si usa:
MDIFF [-C<c>] [-R<r>] [-F<f>] [-S] [-Z] <OldFile> <NewFile> [<MDFfile>]
<OldFile> ovviamente e' il nome della versione precedente del file da
comparare, mentre <NewFile> e' il nome della versione attuale. Se
necessario si puo' specificare il nome del file di differenza da creare
<MDFfile>, altrimenti MDIFF crea un file che ha lo stesso nome di
<NewFile> ma estensione ".MDF". Per cercare le parti simili nei files,
MDIFF si serve di una stringa base di lunghezza predefinita detta chunk.
La lunghezza del chunk e' per default di 16 byte ma puo' essere cambiata
(in un range 4-256) con lo switch -C seguito dalla lunghezza voluta.
Quando MDIFF perde il sincronismo tra i due files che sta confrontando,
cerca di ritrovarlo scandendo il vecchio file alla ricerca del chunk che
3
sta elaborando. Tale ricerca viene effettuata, in un intorno dell'ultimo
chunk trovato, nel range definito dallo switch -R. Per default tale range
e' di 8 blocchi di 512 byte, ma puo' variare tra 1 e 16. Se tale ricerca
fallisce MDIFF cerca di forzare il sincronismo cercando in un raggio piu'
ampio di quello definito solitamente ampio 1/16 della lunghezza del file.
Questa seconda ricerca puo' essere disabilitata o il suo range puo'
essere cambiato tramite lo switch -F. Specificando lo switch -S, alla
fine dell'operazione, MDIFF fornira' alcuni dati sulla composizione del
file di differenza.
E' inoltre possibile, tramite lo switch -Z, inserire nel file di
differenza un breve commento (al massimo 2 Kbyte), che sara' visualizzato
durante l'applicazione della patch da parte di MPATCH. Il commento viene
prelevato direttamente dallo standard input e quindi puo' essere o
digitato o prelevato da un file tramite l'apposito comando di redirezione
"<".
6.MPATCH - MPATCH2
MDIFF sarebbe un programma inutile se non esistesse MPATCH. Infatti
MPATCH si occupa, dati <OldFile> e <MDFfile>, di ricreare <NewFile>.
Vediamo come si usa:
MPATCH <MDFfile> [<OldFile>] [<NewFile>]
L'unico parametro necessario e' il nome del file di differenza <MDFfile>
perche' esso contiene i nomi degli altri due file, ma e' possibile
modificare tale impostazione semplicemente specificando i nomi voluti
nell'esatto ordine. MPATCH non ha nessuno switch o parametro
particolare.
In caso di errore MPATCH ritorna un errorlevel che deve essere
interpretato secondo la seguente tabella:
Codice Descrizione
0 "OK!"
"Out of memory !" 1
"Can't open MDF file !" 2
"Invalid MDF file !" 3
4 "MDF file version mismatch !"
"UNREGISTERED !" 5
"Bad or incorrect OLD file !" 6
7 "Can't open OLD file !"
8 "Can't create NEW file !"
9 "General failure: NEW file corrupted !"
10 "OLD and NEW can't be the same file !"
7.ALCUNI CONSIGLI
Il metodo ottimale per costruire un file di differenza sarebbe quello di
ricercare per tutto il vecchio file i chunks che compongono il nuovo
file; ovviamente tale metodo sarebbe di una lentezza esasperante.
L'algoritmo su cui e' basato MDIFF rappresenta un compromesso tra
risultato e velocita' di esecuzione, per questo e' talvolta opportuno
regolare i parametri di funzionamento di MDIFF tramite gli appositi
switch. Vediamo come comportarsi in alcune situazioni tipiche:
4
1. File con pochissime modifiche: e' opportuno utilizzare un chunk molto
ampio (32, 64 o piu') in modo da ridurre il piu' possibile le
dimensioni del file di differenza, soprattutto se si sta' lavorando con
files di testo o con archivi.
2. File di testo: di solito un chunk di dimensione 32 e' il piu' indicato,
e' opportuno provare a diminuire o togliere il sincronismo forzato
tramite lo switch -F.
File eseguibili molto ampi: spesso si ottengono risultati migliori 3.
allargando il range di ricerca del sincronismo tramite lo switch -R.
Un ultimo consiglio: non attendetevi miracoli da MDIFF. Se i due file
confrontati sono molto dissimili il file di patch risultera' molto ampio.
In questi casi c'e' ben poco da fare, bisogna rassegnarsi a distribuire
il nuovo file interamente. MDIFF e' realmente utile solo se il numero
delle modifiche apportate ai file non e' troppo grande.
8.DIRITTI
Questo software appartiene alla categoria dei programmi Shareware:
chiunque lo puo' liberamente copiare ed utilizzare per un periodo di
prova di 15 giorni. Dopo tale periodo, l'utente che desideri
continuare ad utilizzarlo e' tenuto a registrare la propria copia
inviando la quota di registrazione all'autore, Maurizio Giunti.
Gli utenti che pagano la quota di registrazione riceveranno una "chiave
di registrazione" personale e non cedibile, che rendera' "registrata" la
propria copia del programma.
Chiunque puo' ridistribuire questo software a condizione che non richieda
alcuna somma di denaro in cambio, fatta eccezione per le spese di copia
e/o di spedizione che, pero', devono essere adeguatamente documentate.
Altra condizione per la libera distribuzione e' che venga sempre fornito
per intero il contenuto del pacchetto di distribuzione originale, senza
alcuna modifica ai programmi e/o alla documentazione.
Un'unica eccezione: il programma MPATCH puo' essere liberamente
ridistribuito insieme ad uno o piu' files *.MDF prodotti con una copia
REGISTRATA di MDIFF.
9.GARANZIE
L'unica garanzia fornita con questo software e' che occupa spazio su
disco. Non posso assolutamente garantire che funzioni perfettamente o
rappresenti la soluzione di ogni vostro problema. Sono inoltre sicuro che
non e' un virus e non contiene (a meno che non sia stato infettato o
modificato dopo la compilazione) Trojan-Horses, Back-Doors o altre
diavolerie simili. In ogni caso l'autore declina ogni responsabilita'
diretta o indiretta, per eventuali danni morali o materiali derivanti
dal suo uso.
10.LIBRERIE PER APPLICARE PATCH
Nel pacchetto di distribuzione sono allegate alcune librerie per Dos,
Windows e OS/2, utili per realizzare propri programmi per applicare le
patch prodotte con MDIFF.
Tali librerie funzionano soltanto con files *.MDF prodotti con COPIE
REGISTRATE di MDIFF.
5
Il pacchetto contenente le librerie e' corredato di alcuni sorgenti di
esempio in C, C++ e VisualBasic e di tutta la documentazione necessaria.
11.COME REGISTRARSI
Il costo della chiave di registrazione individuale, valida sia per la
versione Dos che per quella OS/2, e' di 25.000 lire italiane (circa 16
U.S.$) spese di spedizione della chiave comprese. Site-license sono
disponibili a richiesta. Il codice di registrazione sara' spedito
tramite normale lettera, oppure, a richiesta, via e-mail.
La registrazione puo' essere effettuata in qualsiasi modo, ma e'
consigliabile l'utilizzo di vaglia postale in Italia o International
Postal Check in Lire Italiane dall'estero, pagabile all'ufficio postale
di "FIRENZE" ed intestato al seguente nominativo:
Maurizio Giunti
Via G.B. Foggini, 24
50142 Firenze (FI)
ITALY
E' importante indicare bene, nel vaglia, il nome del programma da
registrare, il proprio nome, cognome, indirizzo e indirizzo e-mail (se
necessario). Chi voglia fare delle comunicazioni puo' utilizzare
l'apposito spazio sullo stesso vaglia, oppure puo' spedire un e-mail a
"Maurizio Giunti" ai seguenti indirizzi:
Fidonet: 2:332/102.3
Internet: giunti@stat.ds.unifi.it
12.RINGRAZIAMENTI
Vorrei brevemente ringraziare gli amici che mi hanno aiutato nello
sviluppo di questo software e della documentazione allegata, o che si
sono coraggiosamente offerti come beta-testers. In ordine alfabetico:
Andrea Baitelli
Silvia Borri
Filippo Dini
Fabrizio Fioravanti
Cristiano Guidoccio
Giovanni Lopes Pegna
Marco Maccaferri
Marco Menichelli
6
Giuseppe Scarpi
Toni Tatafiore
7